package com.myapp.dao.impl;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.Query;

import com.myapp.dao.SocioDao;
import com.myapp.entity.Socio;
import com.myapp.dao.impl.GeneralDaoImpl;

@Stateless
public class SocioDaoImpl extends GeneralDaoImpl<Socio, Long> implements
		SocioDao {

	@SuppressWarnings("unchecked")
	public List<Socio> consultarSocios(Long idUnidadH) {

		Query query = em.createNamedQuery("consultarSociosProyecto");
		query.setParameter("idUnidadH", idUnidadH);
		List<Socio> listSocio = (List<Socio>) query.getResultList();
		if (listSocio != null && listSocio.size() > 0) {
			return listSocio;
		}
		return null;
	}

	@SuppressWarnings("unchecked")
	public List<Socio> consultarSociosComision(Long idComision,Long idUnidadH) {
		Query query = em.createNamedQuery("consultarSociosComision");
		query.setParameter("idComision", idComision);
		query.setParameter("idUnidadH", idUnidadH);
		List<Socio> listSocio = (List<Socio>) query.getResultList();
		if (listSocio != null && listSocio.size() > 0) {
			return listSocio;
		}
		return null;
	}

	public Long consultarEstadisticoGenero(Long idGenero, Long idUnidadH) {		
		Query query = em.createNamedQuery("consultarEstadisticoGenero");
		query.setParameter("idUnidadH", idUnidadH);
		query.setParameter("idSexo", idGenero);
		Long countSexo = (Long) query.getSingleResult();
		if (countSexo != null) {
			return countSexo;
		}
		return null;
	}
	
	@SuppressWarnings("unchecked")
	public List<Socio> consultarSociosEstatus(Long idUnidadH, Long idEstatus) {
		Query query = em.createNamedQuery("consultarSociosEstatus");
		query.setParameter("idUnidadH", idUnidadH);
		query.setParameter("idEstatus", idEstatus);
		List<Socio> listSocio = (List<Socio>) query.getResultList();
		if (listSocio != null && listSocio.size() > 0) {
			return listSocio;
		}
		return null;
	}

}
